Create<TData>(DicomScp,TData,BeforeAddTagDelegate) Method

Summary
Sends an N-CREATE-REQ to the SCP.
Syntax
C#
VB
C++
public void Create<TData>( 
   DicomScp Scp, 
   TData Data, 
   BeforeAddTagDelegate beforeAdd 
) 
  
Public Overloads Sub Create(Of TData)( _ 
   ByVal Scp As DicomScp, _ 
   ByVal Data As TData, _ 
   ByVal beforeAdd As BeforeAddTagDelegate _ 
)  
public: 
void Creategeneric<typename TData> 
(  
   DicomScp^ Scp, 
   _TData^_ Data, 
   BeforeAddTagDelegate^ beforeAdd 
)  

Parameters

Scp
The peer connection to send the N-CREATE-REQ to.

Data
The data to send in the N-CREATE-REQ.

beforeAdd
The delegate to call before adding Data properties to the dataset that will be used in the N-CREATE-REQ.

Type Parameters

TData
The type of the data.

Example

Create a Modality Performed Procedure Step and sets it to complete.

C#
VB
using Leadtools.Dicom.Common.DataTypes.Modality; 
using Leadtools.Dicom; 
using Leadtools.Dicom.Scu.Queries; 
using Leadtools.Dicom.Scu; 
using Leadtools.Dicom.Common.Extensions; 
using Leadtools.Dicom.Scu.Common; 
 
 
 
List<ModalityWorklistResult> WorkList = new List<ModalityWorklistResult>(); 
 
public void BeforeTagTest() 
{ 
   DicomEngine.Startup(); 
   DicomNet.Startup(); 
 
   ModalityWorklistQuery query = new ModalityWorklistQuery(); 
   DicomScp scp = new DicomScp(); 
   QueryRetrieveScu findMwl = new QueryRetrieveScu(); 
 
   scp.AETitle = "MWL_SERVER"; 
   scp.Port = 104; 
   scp.Timeout = 60; 
   scp.PeerAddress = IPAddress.Parse("192.168.0.209"); 
   findMwl.AETitle = "LEAD_CLIENT"; 
   findMwl.Find<ModalityWorklistQuery, ModalityWorklistResult>(scp, query, NewWorklist); 
 
   // 
   // Create a Modality Perform Procedure Step 
   if (WorkList.Count > 0) 
   { 
      ModalityPerformedProcedureStep mpps = ModalityPerformedProcedureStep.From(WorkList[0]); 
      PerformedProcedureStepScu pps = new PerformedProcedureStepScu(); 
 
      pps.AETitle = "LEAD_CLIENT"; 
 
      // 
      // Initialize required procedure step variables 
      // 
      mpps.PerformedStationAeTitle = Environment.MachineName; 
      mpps.PerformedProcedureStepStartDate = DateTime.Now; 
      mpps.PerformedProcedureStepStartTime = DateTime.Now; 
      mpps.PerformedSeriesSequence[0].ProtocolName = ModalityPerformedProcedureStep.RandomId(16); 
      mpps.PerformedSeriesSequence[0].SeriesInstanceUID = "1.2.3.4.5.890.1232"; 
      mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1" + DateTime.Now.Ticks.ToString(); 
 
      try 
      { 
         pps.Create<ModalityPerformedProcedureStep>(scp, mpps, new BeforeAddTagDelegate(BeforeAddTagDelegate)); 
 
         // 
         // Set the procedure step to done 
         // 
         mpps.PerformedProcedureStepEndDate = DateTime.Now; 
         mpps.PerformedProcedureStepEndTime = DateTime.Now; 
         mpps.PerformedProcedureStepStatus = "COMPLETED"; 
         pps.Set<ModalityPerformedProcedureStep>(scp, mpps, new BeforeAddTagDelegate(BeforeAddTagDelegate)); 
      } 
      catch (Exception e) 
      { 
         Console.WriteLine(e.Message); 
      } 
   } 
 
   DicomEngine.Shutdown(); 
   DicomNet.Startup(); 
} 
 
private void NewWorklist(ModalityWorklistResult result, DicomDataSet ds) 
{ 
   WorkList.Add(result); 
} 
 
private bool BeforeAddTagDelegate(LinkedList<long> parent, object data, long tag) 
{ 
   DicomTag dcmTag = DicomTagTable.Instance.Find(tag); 
 
   if (dcmTag != null) 
   { 
      Console.WriteLine("Tag: " + dcmTag.Name); 
   } 
   else 
      Console.WriteLine(string.Format("Tag: {0:x4}:{1:x4}", DicomExtensions.GetGroup(tag), DicomExtensions.GetElement(tag))); 
 
   return true; 
} 
Imports Leadtools.Dicom.Common.DataTypes.Modality 
Imports Leadtools.Dicom 
Imports Leadtools.Dicom.Scu.Queries 
Imports Leadtools.Dicom.Scu 
Imports Leadtools.Dicom.Scu.Common 
Imports Leadtools.Dicom.Common.Extensions 
 
 
Private WorkList As New List(Of ModalityWorklistResult)() 
 
Public Sub BeforeTagTest() 
   DicomEngine.Startup() 
   DicomNet.Startup() 
 
   Dim query As New ModalityWorklistQuery() 
   Dim scp As New DicomScp() 
   Dim findMwl As New QueryRetrieveScu() 
 
   scp.AETitle = "MWL_SERVER" 
   scp.Port = 104 
   scp.Timeout = 60 
   scp.PeerAddress = IPAddress.Parse("192.168.0.209") 
   findMwl.AETitle = "LEAD_CLIENT" 
   findMwl.Find(Of ModalityWorklistQuery, ModalityWorklistResult)(scp, query, AddressOf NewWorklist) 
 
   ' 
   ' Create a Modality Perform Procedure Step 
   If WorkList.Count > 0 Then 
      Dim mpps As ModalityPerformedProcedureStep = ModalityPerformedProcedureStep.From(WorkList(0)) 
      Dim pps As New PerformedProcedureStepScu() 
 
      pps.AETitle = "LEAD_CLIENT" 
 
      ' 
      ' Initialize required procedure step variables 
      ' 
      mpps.PerformedStationAeTitle = Environment.MachineName 
      mpps.PerformedProcedureStepStartDate = DateTime.Now 
      mpps.PerformedProcedureStepStartTime = DateTime.Now 
      mpps.PerformedSeriesSequence(0).ProtocolName = ModalityPerformedProcedureStep.RandomId(16) 
      mpps.PerformedSeriesSequence(0).SeriesInstanceUID = "1.2.3.4.5.890.1232" 
      mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1" & DateTime.Now.Ticks.ToString() 
 
      Try 
         pps.Create(Of ModalityPerformedProcedureStep)(scp, mpps, New BeforeAddTagDelegate(AddressOf BeforeAddTagDelegate)) 
 
         ' 
         ' Set the procedure step to done 
         ' 
         mpps.PerformedProcedureStepEndDate = DateTime.Now 
         mpps.PerformedProcedureStepEndTime = DateTime.Now 
         mpps.PerformedProcedureStepStatus = "COMPLETED" 
         pps.[Set](Of ModalityPerformedProcedureStep)(scp, mpps, New BeforeAddTagDelegate(AddressOf BeforeAddTagDelegate)) 
      Catch e As Exception 
         Console.WriteLine(e.Message) 
      End Try 
   End If 
 
   DicomEngine.Shutdown() 
   DicomNet.Startup() 
End Sub 
 
Private Sub NewWorklist(ByVal result As ModalityWorklistResult, ByVal ds As DicomDataSet) 
   WorkList.Add(result) 
End Sub 
 
Private Function BeforeAddTagDelegate(ByVal parent As LinkedList(Of Long), ByVal data As Object, ByVal tag As Long) As Boolean 
   Dim dcmTag As DicomTag = DicomTagTable.Instance.Find(tag) 
 
   If dcmTag IsNot Nothing Then 
      Console.WriteLine("Tag: " & dcmTag.Name) 
   Else 
      Console.WriteLine(String.Format("Tag: {0:x4}:{1:x4}", DicomExtensions.GetGroup(tag), DicomExtensions.GetElement(tag))) 
   End If 
 
   Return True 
End Function 
Requirements

Target Platforms

Help Version 21.0.2021.6.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom.Scu Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.